<template>
  <el-container style="min-height: 100vh">

    <el-aside :width="sideWidth + 'px'" style="box-shadow: 2px 0 6px rgb(0 21 41 / 35%);">
      <el-menu router
               :default-active="$route.path"
               :default-openeds="['1', '3']" style="min-height: 100%; overflow-x: hidden"
               background-color="#4095E5"
               text-color="#fff"
               active-text-color="#ffd04b"
               :collapse-transition="false"
               :collapse="isCollapse"
      >
        <div style="height: 60px; line-height: 60px; text-align: center">
          <img src="../assets/logo.png" alt="" style="width: 20px; position: relative; top: 5px; right: 5px">
          <b style="color: white" v-show="logoTextShow">教师管理系统</b>
        </div>
        <el-menu-item index="StudentView">
          <template slot="title">
            <i class="el-icon-message"></i>
            <span slot="title">学生管理</span>
          </template>
        </el-menu-item>
        <el-menu-item index="1">
          <template slot="title">
            <i class="el-icon-menu"></i>
            <span slot="title">成绩管理</span>
          </template>
        </el-menu-item>
        <el-menu-item index="/CheckpointView">
          <template slot="title">
            <i class="el-icon-setting"></i>
            <span slot="title">关卡管理</span>
          </template>
        </el-menu-item>
        <el-menu-item index="/CheckpointContentView">
          <template slot="title">
            <i class="el-icon-setting"></i>
            <span slot="title">内容管理</span>
          </template>
        </el-menu-item>
        <el-menu-item index="/MultiQuestionView">
          <template slot="title">
            <i class="el-icon-setting"></i>
            <span slot="title">试题管理</span>
          </template>
        </el-menu-item>

        <el-menu-item index="1">
          <template slot="title">
            <i class="el-icon-setting"></i>
            <span slot="title">通知管理</span>
          </template>
        </el-menu-item>
        <el-menu-item index="1">
          <template slot="title">
            <i class="el-icon-setting"></i>
            <span slot="title">班级管理</span>
          </template>
        </el-menu-item>
        <el-menu-item index="TeacherView">
          <template slot="title">
            <i class="el-icon-setting"></i>
            <span slot="title">个人信息管理</span>
          </template>
        </el-menu-item>
      </el-menu>
    </el-aside>

    <el-container>
      <el-header style="font-size: 12px; border-bottom: 1px solid #ccc; line-height: 60px; display: flex">
        <div style="flex: 1; font-size: 20px">
          <span :class="collapseBtnClass" style="cursor: pointer" @click="collapse"></span>
        </div>
        <el-dropdown style="width: 70px; cursor: pointer">
          <span>徐哲豪</span><i class="el-icon-arrow-down" style="margin-left: 5px"></i>
          <el-dropdown-menu slot="dropdown" >
            <el-dropdown-item style="font-size: 14px; padding: 5px 0">个人信息</el-dropdown-item>
            <el-dropdown-item style="font-size: 14px; padding: 5px 0">退出</el-dropdown-item>
          </el-dropdown-menu>
        </el-dropdown>

      </el-header>

      <el-main>
        <div style="margin: 0px;width:100%;height:45px;text-align:center;background: #4095E5">
          <el-breadcrumb separator="/">
            <el-breadcrumb-item :to="{ path: '/' }">首页</el-breadcrumb-item>
            <el-breadcrumb-item>关卡管理</el-breadcrumb-item>
          </el-breadcrumb>
        </div>

        <div style="margin: 10px 0">
          <el-table-column type="selection" width="55"></el-table-column>
          <el-input style="width: 200px" placeholder="请输入序号" suffix-icon="el-icon-search" v-model="id"></el-input>
          <el-input style="width: 200px" placeholder="请输入标题" suffix-icon="el-icon-message" class="ml-5" v-model="checkpointTitle"></el-input>
          <el-button class="ml-5" type="primary" @click="load">搜索</el-button>
          <el-button type="warning" @click="reset">重置</el-button>
        </div>

        <div style="margin: 10px 0">
          <el-button type="primary" @click="handleAdd">新增 <i class="el-icon-circle-plus-outline"></i></el-button>
          <el-popconfirm
              class="ml-5"
              confirm-button-text='确定'
              cancel-button-text='我再想想'
              icon="el-icon-info"
              icon-color="red"
              title="您确定批量删除这些数据吗？"
              @confirm="delBatch"
          >
            <el-button type="danger" slot="reference">批量删除 <i class="el-icon-remove-outline"></i></el-button>
          </el-popconfirm>
          <el-button type="primary" class="ml-5">导入 <i class="el-icon-bottom"></i></el-button>
          <el-button type="primary">导出 <i class="el-icon-top"></i></el-button>
        </div>

        <el-table :data="tableData" border stripe :header-cell-class-name="headerBg" @selection-change="handleSelectionChange"
                  :sort-method="handleSort">
          <el-table-column type="selection" width="50">
          </el-table-column>
<!--          <el-table-column label="序号" width="70" align="left">-->
<!--            <template slot-scope="scope">-->
<!--              {{ (scope.$index+1)+(currentPage-1)*pageSize }}-->
<!--            </template>-->
<!--          </el-table-column>-->


          <el-table-column sortable prop="id" label="序号" width="80">
            <template slot-scope="scope">
              <div class="blue-font-color" @click="gochapter(scope.row)">{{ scope.row.id }}</div>
            </template>
          </el-table-column>
          <el-table-column prop="checkpointId" label="关卡号" width="180">
            <template slot-scope="scope">
              <div class="blue-font-color" @click="gochapter(scope.row)">{{ scope.row.checkpointId }}</div>
            </template>
          </el-table-column>
          <el-table-column prop="checkpointTitle" label="关卡标题">
            <template slot-scope="scope">
              <div class="blue-font-color" @click="gochapter(scope.row)">{{ scope.row.checkpointTitle }}</div>
            </template>
          </el-table-column>

          <el-table-column label="操作"  width="200" align="center">
            <template slot-scope="scope">
              <el-button type="success" @click="handleEdit(scope.row)">编辑 <i class="el-icon-edit"></i></el-button>
              <el-popconfirm
                  class="ml-5"
                  confirm-button-text='确定'
                  cancel-button-text='我再想想'
                  icon="el-icon-info"
                  icon-color="red"
                  title="您确定删除吗？"
                  @confirm="del(scope.row.checkpointId)"
              >
                <el-button type="danger" slot="reference">删除 <i class="el-icon-remove-outline"></i></el-button>
              </el-popconfirm>
            </template>
          </el-table-column>
        </el-table>
        <div style="padding: 10px 0" align="center">
          <el-pagination
              @size-change="handleSizeChange"
              @current-change="handleCurrentChange"
              :current-page="pageNum"
              :page-sizes="[2, 5, 10, 20]"
              :page-size="pageSize"
              layout="total, sizes, prev, pager, next, jumper"
              :total="total">
          </el-pagination>
        </div>

        <el-dialog title="关卡信息" :visible.sync="dialogFormVisible" width="30%" >
          <el-form label-width="80px" size="small">
            <el-form-item label="序号">
              <el-input v-model="form.id" autocomplete="off"></el-input>
            </el-form-item>
            <el-form-item label="关卡标题">
              <el-input v-model="form.checkpointTitle" autocomplete="off"></el-input>
            </el-form-item>

          </el-form>
          <div slot="footer" class="dialog-footer">
            <el-button @click="dialogFormVisible = false">取 消</el-button>
            <el-button type="primary" @click="save">确 定</el-button>
          </div>
        </el-dialog>



      </el-main>

    </el-container>
  </el-container>

</template>

<script>
import request from "@/utils/request";

export default {
  name: 'CheckpointView',
  data() {
    return {
      flag:false,
      tableData: [],
      total: 0,
      queryParams: {
        pageNum: 1,
        pageSize: 10,
      },
      pageNum: 1,
      currentPage:1,
      pageSize: 10,
      id: "",
      checkpointId: "",
      checkpointTitle: "",
      form: {},
      dialogFormVisible: false,
      multipleSelection: [],
      msg: "hello",
      collapseBtnClass: 'el-icon-s-fold',
      isCollapse: false,
      sideWidth: 200,
      logoTextShow: true,
      headerBg: 'headerBg',
    }
  },
  created() {
    // 请求分页查询数据
    this.load()
  },
  methods: {
    collapse() {  // 点击收缩按钮触发
      this.isCollapse = !this.isCollapse
      if (this.isCollapse) {  // 收缩
        this.sideWidth = 64
        this.collapseBtnClass = 'el-icon-s-unfold'
        this.logoTextShow = false
      } else {   // 展开
        this.sideWidth = 200
        this.collapseBtnClass = 'el-icon-s-fold'
        this.logoTextShow = true
      }
    },
    load() {
      this.request.get("/pygram/checkpoint/page", {
        params: {
          pageNum: this.pageNum,
          pageSize: this.pageSize,
          id:this.id,
          checkpointTitle:this.checkpointTitle,
        }
      }).then(res => {

        this.tableData = res.data.records
        this.total = res.data.total

      })
    },

    handleSort(a,b) {
      return a.id-b.id
    },


    gochapter(row) {
      this.$router.push({path: '/ChapterView', query:{checkpointId: row.checkpointId,id: row.id,}})
    },

    save() {
      this.request.post("/pygram/checkpoint", this.form).then(res => {
        if (res.code==200) {
          this.$message.success("保存成功")
          this.dialogFormVisible = false
          this.load()
        } else {
          this.$message.error("序号重复，保存失败")

        }
      })
    },
    handleAdd() {
      this.dialogFormVisible = true
      this.form = {}
    },
    handleEdit(row) {
      this.form = row
      this.dialogFormVisible = true
    },
    del(checkpointId) {
      request.delete("/pygram/checkpoint/" + checkpointId).then(res => {
        if (res) {
          this.$message.success("删除成功")
          this.load()
        } else {
          this.$message.error("删除失败")
        }
      })
    },
    handleSelectionChange(val) {
      console.log(val)
      this.multipleSelection = val
    },

    delBatch() {
      let checkpointIds = this.multipleSelection.map(v => v.checkpointId)  // [{}, {}, {}] => [1,2,3]
      request.post("/pygram/checkpoint/del/batch", checkpointIds).then(res => {
        if (res) {
          this.$message.success("批量删除成功")
          this.load()
        } else {
          this.$message.error("批量删除失败")
        }
      })
    },
    reset() {
      this.id = ""
      this.checkpointTitle = ""
      this.load()
    },
    handleSizeChange(pageSize) {
      console.log(pageSize)
      this.pageSize = pageSize
      this.load()
    },
    handleCurrentChange(pageNum) {
      console.log(pageNum)
      this.pageNum = pageNum
      this.load()
    }
  }
}
</script>

<style>

</style>